package com.bridge.utils;

import com.bridge.exception.BridgeProcessFailException;
import com.bridge.enums.BridgeErrorEnum;
import com.bridge.zookeeper.data.ConfigKeyNodeData;
import org.springframework.util.StringUtils;

/**
 * @author Jay
 * @version v1.0
 * @description 请添加类描述
 * @date 2019-02-26 14:41
 */
public class ObectCheckUtils {


    /**
     * 校验两个相同的对象值是否相等
     *
     * @param oneObj
     * @param twoObj
     * @return
     */
    public static boolean equalsOf(ConfigKeyNodeData oneObj, ConfigKeyNodeData twoObj) {
        notNull(oneObj);
        notNull(twoObj);
        if (!oneObj.getValue().equals(twoObj.getValue())) {
            return false;
        }
        if (!oneObj.getKey().equals(twoObj.getKey())) {
            return false;
        }
        return oneObj.getVersion().equals(twoObj.getVersion());
    }


    /**
     * 校验对象是否为空
     *
     * @param configKeyNodeData
     * @return
     */
    public static boolean notNull(ConfigKeyNodeData configKeyNodeData) {
        if (configKeyNodeData == null) {
            throw new BridgeProcessFailException(BridgeErrorEnum.BNS_CHK_ERROR.getCode(), "configKeyNodeData 不能为空");
        }
        if (StringUtils.isEmpty(configKeyNodeData.getValue())) {
            throw new BridgeProcessFailException(BridgeErrorEnum.BNS_CHK_ERROR.getCode(), "value 不能为空");
        }
        if (StringUtils.isEmpty(configKeyNodeData.getKey())) {
            throw new BridgeProcessFailException(BridgeErrorEnum.BNS_CHK_ERROR.getCode(), "key 不能为空");
        }
        if (StringUtils.isEmpty(configKeyNodeData.getVersion())) {
            throw new BridgeProcessFailException(BridgeErrorEnum.BNS_CHK_ERROR.getCode(), "version 不能为空");
        }
        return true;
    }
}
